package com.kgc.xs.pojo;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

public class SalesOrders implements Serializable {
    private int id;
    private String docCode;
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date docDate;
    private int cid;
    private int uid;
    private int status;
    private int totalQuantity;
    private BigDecimal totalAmount;
    private BigDecimal totalTaxValue;
    private String notes;
    private String createBy;
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date createTime;
    private String updateBy;
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date updateTime;
    private int isDelete;
    private int insStatus;
    private String sourceSheet;
    private int did;
    private int typeId;
    private int checkmanId;
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date checkTime;
    private String checkComment;


    //连表查询数据
    private String cidStr;
    private String uidStr;
    private String didStr;
    private String checkmanIdStr;

    //显示明细表数据
    private BigDecimal arBalance; //可预收余额
    private BigDecimal outboundQuantity;//已出库数量
    private BigDecimal outboundAmount;//已出库金额
    private BigDecimal settlementQuantity;//结算数量
    private BigDecimal settlementAmount;//结算金额
    private BigDecimal settledAmount;//已结算金额

    //订单明细以及商品信息
    private List<SalesOrdersDetail> details;

    public SalesOrders(int id, String docCode, Date docDate, int cid, int uid, int status, int totalQuantity, BigDecimal totalAmount, BigDecimal totalTaxValue, String notes, String createBy, Date createTime, String updateBy, Date updateTime, int isDelete, int insStatus, String sourceSheet, int did, int typeId, int checkmanId, Date checkTime, String checkComment, String cidStr, String uidStr, String didStr, String checkmanIdStr, BigDecimal arBalance, BigDecimal outboundQuantity, BigDecimal outboundAmount, BigDecimal settlementQuantity, BigDecimal settlementAmount, BigDecimal settledAmount, List<SalesOrdersDetail> details) {
        this.id = id;
        this.docCode = docCode;
        this.docDate = docDate;
        this.cid = cid;
        this.uid = uid;
        this.status = status;
        this.totalQuantity = totalQuantity;
        this.totalAmount = totalAmount;
        this.totalTaxValue = totalTaxValue;
        this.notes = notes;
        this.createBy = createBy;
        this.createTime = createTime;
        this.updateBy = updateBy;
        this.updateTime = updateTime;
        this.isDelete = isDelete;
        this.insStatus = insStatus;
        this.sourceSheet = sourceSheet;
        this.did = did;
        this.typeId = typeId;
        this.checkmanId = checkmanId;
        this.checkTime = checkTime;
        this.checkComment = checkComment;
        this.cidStr = cidStr;
        this.uidStr = uidStr;
        this.didStr = didStr;
        this.checkmanIdStr = checkmanIdStr;
        this.arBalance = arBalance;
        this.outboundQuantity = outboundQuantity;
        this.outboundAmount = outboundAmount;
        this.settlementQuantity = settlementQuantity;
        this.settlementAmount = settlementAmount;
        this.settledAmount = settledAmount;
        this.details = details;
    }

    public SalesOrders() {
    }

    public String getCheckmanIdStr() {
        return checkmanIdStr;
    }

    public void setCheckmanIdStr(String checkmanIdStr) {
        this.checkmanIdStr = checkmanIdStr;
    }

    public int getCheckmanId() {
        return checkmanId;
    }

    public void setCheckmanId(int checkmanId) {
        this.checkmanId = checkmanId;
    }

    public Date getCheckTime() {
        return checkTime;
    }

    public void setCheckTime(Date checkTime) {
        this.checkTime = checkTime;
    }

    public String getCheckComment() {
        return checkComment;
    }

    public void setCheckComment(String checkComment) {
        this.checkComment = checkComment;
    }

    public String getCidStr() {
        return cidStr;
    }

    public String getUidStr() {
        return uidStr;
    }

    public String getDidStr() {
        return didStr;
    }

    public int getTypeId() {
        return typeId;
    }

    public void setTypeId(int typeId) {
        this.typeId = typeId;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getDocCode() {
        return docCode;
    }

    public void setDocCode(String docCode) {
        this.docCode = docCode;
    }

    public Date getDocDate() {
        return docDate;
    }

    public void setDocDate(Date docDate) {
        this.docDate = docDate;
    }

    public int getCid() {
        return cid;
    }

    public void setCid(int cid) {
        this.cid = cid;
    }

    public int getUid() {
        return uid;
    }

    public void setUid(int uid) {
        this.uid = uid;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public int getTotalQuantity() {
        return totalQuantity;
    }

    public void setTotalQuantity(int totalQuantity) {
        this.totalQuantity = totalQuantity;
    }

    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalTaxValue() {
        return totalTaxValue;
    }

    public void setTotalTaxValue(BigDecimal totalTaxValue) {
        this.totalTaxValue = totalTaxValue;
    }

    public String getNotes() {
        return notes;
    }

    public void setNotes(String notes) {
        this.notes = notes;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public int getIsDelete() {
        return isDelete;
    }

    public void setIsDelete(int isDelete) {
        this.isDelete = isDelete;
    }

    public int getInsStatus() {
        return insStatus;
    }

    public void setInsStatus(int insStatus) {
        this.insStatus = insStatus;
    }

    public String getSourceSheet() {
        return sourceSheet;
    }

    public void setSourceSheet(String sourceSheet) {
        this.sourceSheet = sourceSheet;
    }

    public int getDid() {
        return did;
    }

    public void setDid(int did) {
        this.did = did;
    }

    public void setCidStr(String cidStr) {
        this.cidStr = cidStr;
    }

    public void setUidStr(String uidStr) {
        this.uidStr = uidStr;
    }

    public void setDidStr(String didStr) {
        this.didStr = didStr;
    }

    public BigDecimal getArBalance() {
        return arBalance;
    }

    public void setArBalance(BigDecimal arBalance) {
        this.arBalance = arBalance;
    }

    public BigDecimal getOutboundQuantity() {
        return outboundQuantity;
    }

    public void setOutboundQuantity(BigDecimal outboundQuantity) {
        this.outboundQuantity = outboundQuantity;
    }

    public BigDecimal getOutboundAmount() {
        return outboundAmount;
    }

    public void setOutboundAmount(BigDecimal outboundAmount) {
        this.outboundAmount = outboundAmount;
    }

    public BigDecimal getSettlementQuantity() {
        return settlementQuantity;
    }

    public void setSettlementQuantity(BigDecimal settlementQuantity) {
        this.settlementQuantity = settlementQuantity;
    }

    public BigDecimal getSettlementAmount() {
        return settlementAmount;
    }

    public void setSettlementAmount(BigDecimal settlementAmount) {
        this.settlementAmount = settlementAmount;
    }

    public BigDecimal getSettledAmount() {
        return settledAmount;
    }

    public void setSettledAmount(BigDecimal settledAmount) {
        this.settledAmount = settledAmount;
    }

    public List<SalesOrdersDetail> getDetails() {
        return details;
    }

    public void setDetails(List<SalesOrdersDetail> details) {
        this.details = details;
    }


    @Override
    public String toString() {
        return "SalesOrders{" +
                "id=" + id +
                ", docCode='" + docCode + '\'' +
                ", docDate=" + docDate +
                ", cid=" + cid +
                ", uid=" + uid +
                ", status=" + status +
                ", totalQuantity=" + totalQuantity +
                ", totalAmount=" + totalAmount +
                ", totalTaxValue=" + totalTaxValue +
                ", notes='" + notes + '\'' +
                ", createBy='" + createBy + '\'' +
                ", createTime=" + createTime +
                ", updateBy='" + updateBy + '\'' +
                ", updateTime=" + updateTime +
                ", isDelete=" + isDelete +
                ", insStatus=" + insStatus +
                ", sourceSheet='" + sourceSheet + '\'' +
                '}';
    }
}
